import { defineConfig } from "unocss/vite";
import presetUno from "unocss/preset-uno";

export default defineConfig({
  exclude: [
    "node_modules",
    "dist",
    ".git",
    ".husky",
    ".vscode",
    "public",
    "build",
    "mock",
    "./stats.html",
  ],
  presets: [presetUno({ dark: "class" })],
  shortcuts: {
    full: "w-full h-full",
    "full-v": "w-100vw h-100vh",
    "flex-center": "flex justify-center items-center",
    "flex-col-center": "flex-center flex-col",
    "flex-x-between": "flex justify-between",
    "flex-col-between": "flex-x-between flex-col",
    "flex-x-around": "flex justify-around",
    "flex-x-end": "flex justify-end",
    "flex-x-center": "flex justify-center",
    "flex-y-center": "flex items-center",
    "i-flex-center": "inline-flex justify-center items-center",
    "i-flex-x-center": "inline-flex justify-center",
    "i-flex-y-center": "inline-flex items-center",
    "flex-col": "flex flex-col",
    "flex-col-stretch": "flex-col items-stretch",
    "i-flex-col": "inline-flex flex-col",
    "i-flex-col-stretch": "i-flex-col items-stretch",
    "flex-1-hidden": "flex-1 overflow-hidden",
    "absolute-lt": "absolute left-0 top-0",
    "absolute-lb": "absolute left-0 bottom-0",
    "absolute-rt": "absolute right-0 top-0",
    "absolute-rb": "absolute right-0 bottom-0",
    "absolute-tl": "absolute-lt",
    "absolute-tr": "absolute-rt",
    "absolute-bl": "absolute-lb",
    "absolute-br": "absolute-rb",
    "absolute-center": "absolute-lt flex-center wh-full",
    "fixed-lt": "fixed left-0 top-0",
    "fixed-lb": "fixed left-0 bottom-0",
    "fixed-rt": "fixed right-0 top-0",
    "fixed-rb": "fixed right-0 bottom-0",
    "fixed-tl": "fixed-lt",
    "fixed-tr": "fixed-rt",
    "fixed-bl": "fixed-lb",
    "fixed-br": "fixed-rb",
    pointer: "cursor-pointer",
    "fixed-center": "fixed-lt flex-center full-v",
    "nowrap-hidden": "whitespace-nowrap overflow-hidden",
    "ellipsis-text": "nowrap-hidden overflow-ellipsis",
    transition: "transition-all duration-300 ease-in-out",
  },
  theme: {
    colors: {
      primary: "var(--primary-color)",
      primary_hover: "var(--primary-color-hover)",
      primary_pressed: "var(--primary-color-pressed)",
      primary_active: "var(--primary-color-active)",
      info: "var(--info-color)",
      info_hover: "var(--info-color-hover)",
      info_pressed: "var(--info-color-pressed)",
      info_active: "var(--info-color-active)",
      success: "var(--success-color)",
      success_hover: "var(--success-color-hover)",
      success_pressed: "var(--success-color-pressed)",
      success_active: "var(--success-color-active)",
      warning: "var(--warning-color)",
      warning_hover: "var(--warning-color-hover)",
      warning_pressed: "var(--warning-color-pressed)",
      warning_active: "var(--warning-color-active)",
      error: "var(--error-color)",
      error_hover: "var(--error-color-hover)",
      error_pressed: "var(--error-color-pressed)",
      error_active: "var(--error-color-active)",
      dark: "#18181c",
    },
  },
});
